table of contents
SED(1) | Polecenia użytkownika | SED(1) |
NAZWA¶
sed - edytor strumieniowy do filtrowania i przekształcania tekstu
SKŁADNIA¶
sed [OPCJA]... {skrypt-tylko-jeśli-nie-ma-ich-więcej} [plik-wejściowy]...
OPIS¶
Sed jest edytorem strumieniowym. Edytor strumieniowy jest używany do wykonywania prostych przekształceń tekstu na strumieniu wejściowym (pliku lub strumienia z potoku). Sed jest w jakimś stopniu podobny do edytorów przestrzegających edycji skryptowych (np. ed), jednak działa czyniąc tylko jeden przebieg na strumieniu wejściowym i dlatego jest znacznie wydajniejszy. Możliwość filtrowania tekstu w potoku przez seda jest cechą, która w największym stopniu wyróżnia go spośród innych edytorów innego typu.
-n, --quiet, --silent
- hamuje automatyczne wypisywanie bufora tekstowego
-e skrypt, --expression=skrypt
- dodaje skrypt do poleceń do wykonania
-f plik-skryptu, --file=plik-skryptu
- dodaje zawartość pliku-skryptu do poleceń do wykonania
--follow-symlinks
- podąża za dowiązaniami symbolicznymi podczas przetwarzania w miejscu
-i[PRZYROSTEK], --in-place[=PRZYROSTEK]
- edytuje pliki w miejscu (tworzy kopię zapasową, jeśli podano przyrostek)
-l N, --line-length=N
- określa pożądaną długość zawijania wierszy do polecenia l
--posix
- wyłącza wszystkie rozszerzenia GNU
-r, --regexp-extended
- używa w skrypcie rozszerzonych wyrażeń regularnych
-s, --separate
- traktuje pliki jako oddzielne, zamiast jako jeden, ciągły strumień
-u, --unbuffered
- ładuje minimalną ilość danych z plików wejściowych i opróżnia bufory wyjściowe znacznie częściej
- --help
- wyświetla ten tekst i kończy pracę
- --version
- wyświetla informacje o wersji i kończy działanie
Jeśli nie podano żadnej z opcji -e, --expression, -f ani --file, to pierwszy argument niebędący opcją jest interpretowany jako skrypt seda. Wszystkie pozostałe argumenty są nazwami plików wejściowych; jeśli nie podano żadnych, to czytane jest standardowe wejście.
SKŁADNIA POLECEѶ
Jest to zwięzłe podsumowanie poleceń sed, przeznaczone jako przypomnienie dla osób znających program sed; aby przeczytać pełniejszy opis konieczne jest sięgnięcie po inny typ dokumentacji (np. texinfo).
"Polecenia" nie przyjmujące adresów¶
- : etykieta
- Etykieta do poleceń b i t.
- #komentarz
- Komentarz kończy się wraz ze znakiem nowego wiersza (lub końcem fragmentu skryptu -e).
- }
- Nawias klamrowy zamykający blok { }.
Polecenia z zerem lub jednym adresem¶
- =
- Wypisuje bieżący numer wiersza
- a \
- tekst
- Dołącza (dodaje za) tekst, w którym każdy ewentualny znak nowego wiersza jest poprzedzony odwrotnym ukośnikiem.
- i \
- tekst
- Wstawia (dodaje przed) tekst, w którym każdy ewentualny znak nowego wiersza jest poprzedzony odwrotnym ukośnikiem.
- q [status-zakończenia]
- Natychmiast wychodzi ze skryptu seda bez przetwarzania dalszego wejścia, z wyjątkiem sytuacji, gdy nie wyłączono automatycznego wypisywania bieżącego bufora tekstowego, który będzie wówczas nadal wypisywany. Argument statusu zakończenia jest rozszerzeniem GNU.
- Q [status-zakończenia]
- Natychmiast wychodzi ze skryptu seda bez przetwarzania dalszego wejścia. Argument statusu zakończenia jest rozszerzeniem GNU.
- r nazwa-pliku
- Dołącza (dodaje za) tekst odczytany z nazwy-pliku.
- R nazwa-pliku
- Dołącza (dodaje za) tekst odczytany z nazwy-pliku. Każde wywołanie tego polecenia odczytuje jeden wiersz z pliku. Jest to rozszerzenie GNU.
Polecenia, które przyjmują zakresy adresów¶
- {
- Rozpoczyna blok poleceń (który kończy się znakiem } ).
- b etykieta
- Przechodzi do etykiety; jeśli jej nie podano, przechodzi na koniec skryptu.
- c \
- tekst
- Zastępuje wybrane wiersze tesktem, w którym każdy ewentualny znak nowego wiersza jest poprzedzony odwrotnym ukośnikiem.
- d
- Usuwa bufor tekstowy. Rozpoczyna nowy cykl.
- D
- Kasuje wzorzec aż do pierwszego znaku nowego wiersza. Rozpoczyna nowy cykl, lecz pomija czytanie wejścia, jeśli w buforze tekstowym wciąż pozostały dane.
- h H
- Kopiuje/dołącza bieżący bufor tekstowy do wewnętrznego schowka.
- g G
- Kopiuje/dołącza wewnętrzny schowek do bufora tekstowego.
- l
- Wypisuje bieżący wiersz w formie "wizualnie jednoznacznej".
- l szerokość
- Wypisuje bieżący wiersz w formie "wizualnie jednoznacznej", przełamując go po szerokość znaków. Jest to rozszerzenie GNU.
- n N
- Czyta/dołącza następny wiersz do bufora tekstowego.
- p
- Wypisuje bieżący bufor tekstowy.
- P
- Wypisuje bieżący bufor tekstowy aż do jego pierwszego znaku nowego wiersza.
- s/wyrażenie-regularne/zamiennik/
- Podejmuje próbę dopasowania wyrażenia-regularnego do bieżącego bufora tekstowego. Jeśli się to uda, zastępuje dopasowaną część zamiennikiem. Zamiennik może zawierać znak specjalny &, aby odnieść się do dopasowanej części bufora tekstowego, oraz sekwencje specjalne od \1 do \9, aby odnieść się do odpowiedniej pasującej części wyrażenia w wyrażeniu-regularnym.
- t etykieta
- Jeśli s/// wykonało pomyślnie zastąpienie od czasu odczytania ostatniego wiersza wejściowego oraz ostatniego polecenia t lub T, przechodzi do etykiety. Jeśli nie podano etykiety, przechodzi do końca skryptu.
- T etykieta
- Jeśli żadne s/// nie wykonało pomyślnie zastąpienia od czasu odczytania ostatniego wiersza wejściowego oraz ostatniego polecenia t lub T, przechodzi do etykiety. Jeśli nie podano etykiety, przechodzi do końca skryptu. Jest to rozszerzenie GNU.
- w nazwa-pliku
- Zapisuje bieżący bufor tekstowy do nazwy-pliku.
- W nazwa-pliku
- Zapisuje pierwszy wiersz bieżącego bufora tekstowego do nazwy-pliku. Jest to rozszerzenie GNU.
- x
- Zamienia zawartość bufora tekstowego i wewnętrznego schowka.
- y/źródło/cel/
- Zamienia znaki w buforze tekstowym, które znajdują się w źródle, na odpowiadające znaki w celu.
Adresy¶
Polecenia Seda mogą:
* nie zawierać adresów - wtedy polecenia są wykonywane
na wszystkich wierszach wejściowych;
* zawierać jeden adres - są wówczas wykonywane na
wierszach wejściowych pasujących do tego adresu;
* zawierać dwa adresy - polecenia są wykonywane na wszystkich
wierszach wejściowych od pierwszego adresu aż do drugiego
adresu.
Należy odnotować trzy rzeczy o zakresach adresów:
* składnia to adres1,adres2 (tzn. adresy są
oddzielone przecinkami);
* wiersz z dopasowanym adresem1 jest zawsze akceptowany, nawet
jeśli adres2 wybiera wcześniejszy wiersz;
* jeśli adres2 jest wyrażeniem-regularnym, to nie
jest testowany w odniesieniu do wiersza, do którego dopasowano
adres1.
Po adresie (lub zakresie adresu), a przed poleceniem, można wstawić znak !, który powoduje, że polecenie powinno być wykonane tylko na adresie (lub zakresie adresu), który nie pasuje.
Obsługiwane są następujące typy adresów:
- numer
- Dopasowuje tylko wiersz o danym numerze.
- pierwszy~krok
- Dopasowuje co krok wiersz, zaczynając od wiersza o numerze pierwszy. Na przykład "sed -n 1~2p" wypisuje wszystkie nieparzyste wiersze w strumieniu wejściowym, a adres 2~5 dopasuje co piąty wiersz, zaczynając od drugiego. Pierwszy może wynosić zero, w takim przypadku sed działa identycznie, gdyby wynosił on tyle co krok (jest to rozszerzenie).
- $
- Dopasowuje ostatni wiersz.
- /wyrażenie-regularne/
- Dopasowuje wiersze pasujące do wyrażenia regularnego wyrażenie-regularne.
- \zwyrażenie-regularnez
- Dopasowuje wiersze pasujące do wyrażenia regularnego wyrażenie-regularne. Za z można podstawić dowolny znak.
GNU sed obsługuje również specjalne formy dwuadresowe:
- 0,adres2
- Rozpoczyna w stanie "dopasowany pierwszy adres", aż do momentu znalezienia adresu2. Jest to podobne do 1,adres2 , z wyjątkiem tego, że gdy adres2 zostanie dopasowany do pierwszego wiersza wejścia, to forma 0,adres2 będzie na końcu swojego zakresu, podczas gdy forma 1,adres2 będzie wciąż na początku swojego zakresu. Działa to tylko gdy adres2 jest wyrażeniem regularnym.
- adres1,+N
- Dopasowuje adres1 do N-tego wiersza znajdującego się za adresem1
- adres1,~N
- Dopasowuje adres1 i wiersze za adresem1 do następnego wiersza wejściowego, którego numer wiersza jest wielokrotnością N.
WYRAŻENIA REGULARNE¶
Podstawowe wyrażenia regularne (BRE) określone przez POSIX.2 powinny być obsługiwane, ale nie są obsługiwane całkowicie, ze względu na problemy z wydajnością. Sekwencja \n w wyrażeniu regularnym pasuje do znaku nowego wiersza, podobnie dla wyrażeń \a, \t i innych sekwencji.
BŁĘDY¶
Zgłoszenia błędów proszę wysyłać na adres bonzini@gnu.org (po angielsku). Proszę upewnić się, że gdzieś w polu "Temat:" umieszczono słowo "sed". Proszę również umieścić wynik polecenia "sed --version" w treści wiadomości, jeśli to możliwe.
PRAWA AUTORSKIE¶
Copyright © 2009 Free Software Foundation, Inc.
Jest to wolne oprogramowanie; warunki rozpowszechniania znajdują
się w źródle programu. NIE ma gwarancji, nawet
PRZYDATNOŚCI HANDLOWEJ czy PRZYDATNOŚCI DO
OKREŚLONEGO CELU, w granicach określonych przez prawo.
Strona internetowa GNU sed: <http://www.gnu.org/software/sed/>. Ogólna pomoc dotycząca oprogramowania GNU: <http://www.gnu.org/gethelp/>. Zgłoszenia błędów proszę wysyłać na adres: <bug-gnu-utils@gnu.org>. Proszę upewnić się, że gdzieś w polu "Temat:" znajduje się słowo "sed".
ZOBACZ TAKŻE¶
awk(1), ed(1), grep(1), tr(1), perlre(1), sed.info, dowolna z wielu książek o sedzie, FAQ seda (http://sed.sf.net/grabbag/tutorials/sedfaq.txt), http://sed.sf.net/grabbag/.
Pełna dokumentacja sed jest dostępna w formacie Texinfo. Jeśli programy info i sed są poprawnie zainstalowane, to polecenie
- info sed
powinno dać dostęp do pełnego podręcznika.
TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Przemek Borys (PTM) <pborys@dione.ids.pl> i Michał Kułach <michal.kulach@gmail.com>.
Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 4.2.1 oryginału.
grudzień 2010 | sed 4.2.1 |